home *** CD-ROM | disk | FTP | other *** search
- /*
- File: GXEdit.c
-
- Contains:
-
- Written by: Barton R. House
-
- Copyright: © 1993 by Apple Computer, Inc., All rights reserved.
-
- */
-
- #include "GXEdit.h"
- #include "GXEditDoc.h"
- #include "GXEditValidation.h"
- #include "GXEditDebug.h"
- #include "GXEditError.h"
- #include "GXEditUtils.h"
-
- #include "math routines.h"
-
- #ifndef layoutTypesIncludes
- #include "layout types.h"
- #endif
-
- void GXEditNew(GXEditDoc * docHanPtr, gxRectangle * viewRect, gxViewPort docViewPort, fixed leftMargin, fixed rightMargin)
- {
- Rect rect;
- short left;
- short right;
-
- rect.top = FixedToInt(viewRect->top);
- rect.bottom = FixedToInt(viewRect->bottom);
- rect.left = FixedToInt(viewRect->left);
- rect.right = FixedToInt(viewRect->right);
-
- left = FixedToInt(leftMargin);
- right = FixedToInt(rightMargin);
-
- NewDoc((DocHan *) docHanPtr, &rect, (void *) docViewPort, left, right);
-
- }
-
- void GXEditDispose(GXEditDoc doc)
- {
- DisposeDoc((DocHan) doc);
- }
-
- void GXEditSetSelection(GXEditDoc doc, long selStart, long selEnd)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- DocSetSelection(dp, selStart, selEnd);
-
- ValidateDoc(dp);
-
- }
-
- HUnlock((Handle) doc);
- }
-
- void GXEditInsert(GXEditDoc doc, void * text, short startNumText)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- DocInsert(dp, text, startNumText);
-
- ValidateDoc(dp);
-
- }
-
- HUnlock((Handle) doc);
-
- }
-
- void GXEditClear(GXEditDoc doc)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- DocClear(dp);
-
- ValidateDoc(dp);
-
- }
-
- HUnlock((Handle) doc);
-
- }
-
- void GXEditUpdate(GXEditDoc doc, gxRectangle * updateRect)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- DocUpdate(dp, updateRect);
-
- ValidateDoc(dp);
-
- }
-
- HUnlock((Handle) doc);
-
- }
-
- void GXEditClick(GXEditDoc doc, gxPoint where, Boolean extend)
- {
- DocPtr dp;
- Point pt;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- pt.h = FixedToInt(where.x);
- pt.v = FixedToInt(where.y);
-
- if(ValidateDoc(dp)) {
-
- DocClick(dp, pt, extend);
-
- ValidateDoc(dp);
-
- }
-
- HUnlock((Handle) doc);
-
- }
-
- void GXEditScroll(GXEditDoc doc, short dv)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- DocScroll(dp, dv);
-
- ValidateDoc(dp);
-
- }
-
- HUnlock((Handle) doc);
-
- }
-
- long GXEditHeight(GXEditDoc doc)
- {
- DocPtr dp;
- long height;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- height = DocHeight(dp);
-
- ValidateDoc(dp);
-
- } else
- height = 0;
-
- HUnlock((Handle) doc);
-
- return(height);
-
- }
-
- void GXEditSize(GXEditDoc doc, gxRectangle * viewRect)
- {
- DocPtr dp;
- Rect rect;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- rect.top = FixedToInt(viewRect->top);
- rect.bottom = FixedToInt(viewRect->bottom);
- rect.left = FixedToInt(viewRect->left);
- rect.right = FixedToInt(viewRect->right);
-
- if(ValidateDoc(dp)) {
-
- DocSize(dp, &rect);
-
- ValidateDoc(dp);
-
- }
-
- HUnlock((Handle) doc);
-
- }
-
- long GXEditGetTop(GXEditDoc doc)
- {
- DocPtr dp;
- long top;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- top = DocGetTop(dp);
-
- ValidateDoc(dp);
-
- } else
- top = 0;
-
- HUnlock((Handle) doc);
-
- return(top);
-
- }
-
- long GXEditGetMaxTop(GXEditDoc doc)
- {
- DocPtr dp;
- long maxTop;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- maxTop = DocGetMaxTop(dp);
-
- ValidateDoc(dp);
-
- } else
- maxTop = 0;
-
- HUnlock((Handle) doc);
-
- return(maxTop);
- }
-
- void GXEditKey(GXEditDoc doc, char key)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- DocKey(dp, key);
-
- ValidateDoc(dp);
-
- }
-
- HUnlock((Handle) doc);
-
- }
-
- void GXEditSetTextFonts(GXEditDoc doc, short numFonts, gxFont * srcFonts, gxFont * dstFonts)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- if(GXEditDebug) {
- AddBlock((long) srcFonts, numFonts * sizeof(gxFont), false);
- AddBlock((long) dstFonts, numFonts * sizeof(gxFont), false);
- }
-
- DocSetTextFonts(dp, numFonts, srcFonts, dstFonts);
-
- if(GXEditDebug) {
- RemoveBlock((long) srcFonts);
- RemoveBlock((long) dstFonts);
- }
-
-
- ValidateDoc(dp);
-
- }
-
- HUnlock((Handle) doc);
-
-
- }
-
- void GXEditGetTextFonts(GXEditDoc doc, short * numFonts, gxFont * fonts)
- {
- DocPtr dp;
- gxFont textFont;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- if(GXEditDebug && fonts != nil)
- AddBlock((long) fonts, 0x7fffffff, false);
-
- DocGetTextFonts(dp, numFonts, fonts);
-
- if(GXEditDebug && fonts != nil)
- RemoveBlock((long) fonts);
-
- ValidateDoc(dp);
-
- } else
- textFont = nil; /* this is the default gxFont */
-
- HUnlock((Handle) doc);
-
- }
-
- void GXEditSetTextSize(GXEditDoc doc, short size)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- DocSetTextSize(dp, size);
-
- ValidateDoc(dp);
-
- }
-
- HUnlock((Handle) doc);
-
- }
-
- short GXEditGetTextSize(GXEditDoc doc)
- {
- DocPtr dp;
- short size;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- size = DocGetTextSize(dp);
-
- ValidateDoc(dp);
-
- } else
- size = 0;
-
- HUnlock((Handle) doc);
-
- return(size);
- }
-
- void GXEditSetFeatures(GXEditDoc doc, gxFont fontId, short numFeatureGroups,
- short * srcFeatureGroupSizes,
- gxRunFeature ** srcFeatureGroups,
- short * dstFeatureGroupSizes,
- gxRunFeature ** dstFeatureGroups)
- {
- DocPtr dp;
- short i;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- if(GXEditDebug)
- for(i=0; i<numFeatureGroups; i++) {
- AddBlock((long) srcFeatureGroups[i],
- sizeof(gxRunFeature) * srcFeatureGroupSizes[i], false);
- AddBlock((long) dstFeatureGroups[i],
- sizeof(gxRunFeature) * dstFeatureGroupSizes[i], false);
- }
-
- DocSetFeatures(dp, fontId, numFeatureGroups,
- srcFeatureGroupSizes, srcFeatureGroups,
- dstFeatureGroupSizes, dstFeatureGroups);
-
- if(GXEditDebug)
- for(i=0; i<numFeatureGroups; i++) {
- RemoveBlock((long) srcFeatureGroups[i]);
- RemoveBlock((long) dstFeatureGroups[i]);
- }
-
- ValidateDoc(dp);
-
- }
-
- HUnlock((Handle) doc);
-
- }
-
- void GXEditGetFeatures(GXEditDoc doc, gxFont fontId, short * numFeatureGroupsPtr,
- short *** featureGroupSizesPtr,
- gxRunFeature **** featureGroupsPtr)
-
- {
- DocPtr dp;
- short i;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- DocGetFeatures(dp, fontId, numFeatureGroupsPtr,
- featureGroupSizesPtr, featureGroupsPtr);
-
- if(GXEditDebug) {
- RemoveBlock((long) *featureGroupSizesPtr);
- for(i=0; i<*numFeatureGroupsPtr; i++)
- RemoveBlock((long) (**featureGroupsPtr)[i]);
- RemoveBlock((long) *featureGroupsPtr);
- }
-
- ValidateDoc(dp);
-
- }
-
- HUnlock((Handle) doc);
-
- }
-
- void GXEditSetVariations(GXEditDoc doc, gxFont fontId, short numVariations,
- gxFontVariation * variations)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- if(GXEditDebug)
- AddBlock((long) variations, numVariations * sizeof(gxFontVariation), false);
-
- DocSetVariations(dp, fontId, numVariations, variations);
-
- if(GXEditDebug)
- RemoveBlock((long) variations);
-
- ValidateDoc(dp);
-
- }
-
- HUnlock((Handle) doc);
-
- }
-
- void GXEditGetVariations(GXEditDoc doc, gxFont fontId, short * numInstancesPtr,
- short *** instanceSizesPtr, gxFontVariation **** instancesPtr)
- {
- DocPtr dp;
- short i;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- DocGetVariations(dp, fontId, numInstancesPtr, instanceSizesPtr, instancesPtr);
-
- if(GXEditDebug) {
- RemoveBlock((long) *instanceSizesPtr);
- for(i=0; i<*numInstancesPtr; i++)
- RemoveBlock((long) (**instancesPtr)[i]);
- RemoveBlock((long) *instancesPtr);
- }
-
- ValidateDoc(dp);
-
- }
-
- HUnlock((Handle) doc);
-
- }
-
- void GXEditGetSelectionStyles(GXEditDoc doc, short * numStyles, gxStyle * styles)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- DocGetSelectionStyles(dp, numStyles, styles);
-
- ValidateDoc(dp);
-
- }
-
- HUnlock((Handle) doc);
-
- }
-
- void GXEditSetSelectionStyles(GXEditDoc doc, gxStyle * toStyles)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- DocSetSelectionStyles(dp, toStyles);
-
- ValidateDoc(dp);
-
- }
-
- HUnlock((Handle) doc);
-
- }
-
- void GXEditGetRunControls(GXEditDoc doc, gxRunControls * runControls, gxRunControls * mask)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- DocGetRunControls(dp, runControls, mask);
-
- ValidateDoc(dp);
-
- }
-
- HUnlock((Handle) doc);
-
- }
-
- void GXEditSetRunControls(GXEditDoc doc, gxRunControls * runControls, gxRunControls * mask)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- DocSetRunControls(dp, runControls, mask);
-
- ValidateDoc(dp);
-
- }
-
- HUnlock((Handle) doc);
-
- }
-
- void GXEditGetFontRunControls(GXEditDoc doc, gxFont fontID, gxRunControls * runControls, gxRunControls * mask)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- DocGetFontRunControls(dp, fontID, runControls, mask);
-
- ValidateDoc(dp);
-
- }
-
- HUnlock((Handle) doc);
-
- }
-
- void GXEditGetLayoutOptions(GXEditDoc doc, gxLayoutOptions * options, gxLayoutOptions * mask)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- DocGetLayoutOptions(dp, options, mask);
-
- ValidateDoc(dp);
-
- }
-
- HUnlock((Handle) doc);
-
- }
-
- void GXEditSetLayoutOptions(GXEditDoc doc, gxLayoutOptions * options, gxLayoutOptions * mask)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- DocSetLayoutOptions(dp, options, mask);
-
- ValidateDoc(dp);
-
- }
-
- HUnlock((Handle) doc);
-
- }
-
- void GXEditPrint(GXEditDoc doc, gxJob printJob)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- DocPrint(dp, printJob);
-
- ValidateDoc(dp);
-
- }
-
- HUnlock((Handle) doc);
-
- }
-
- void GXEditCopy(GXEditDoc doc)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- DocCopy(dp);
-
- ValidateDoc(dp);
-
- }
-
- HUnlock((Handle) doc);
-
- }
-
- void GXEditCut(GXEditDoc doc)
- {
-
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- DocCopy(dp);
-
- DocClear(dp);
-
- ValidateDoc(dp);
-
- }
-
- HUnlock((Handle) doc);
-
- }
-
- void GXEditPaste(GXEditDoc doc)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- DocPaste(dp);
-
- ValidateDoc(dp);
-
- }
-
- HUnlock((Handle) doc);
-
- }
-
- long GXEditGetScrapLength(GXEditDoc doc)
- {
- DocPtr dp;
- long len;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- len = DocGetScrapLen(dp);
-
- ValidateDoc(dp);
-
- } else
- len = 0;
-
- HUnlock((Handle) doc);
-
- return(len);
- }
-
- long GXEditGetSelectionLength(GXEditDoc doc)
- {
- DocPtr dp;
- long len;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- len = DocGetSelectionLen(dp);
-
- ValidateDoc(dp);
-
- } else
- len = 0;
-
- HUnlock((Handle) doc);
-
- return(len);
- }
-
- long GXEditGetTextLength(GXEditDoc doc)
- {
- DocPtr dp;
- long len;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- len = DocGetTextLen(dp);
-
- ValidateDoc(dp);
-
- } else
- len = 0;
-
- HUnlock((Handle) doc);
-
- return(len);
- }
-
- Boolean GXEditIdle(GXEditDoc doc)
- {
- DocPtr dp;
- Boolean modified;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- modified = DocIdle(dp);
-
- ValidateDoc(dp);
-
- }
-
- HUnlock((Handle) doc);
-
- return(modified);
-
- }
-
- void GXEditSave(GXEditDoc doc, short fRefNum)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp)) {
-
- DocSave(dp, fRefNum);
-
- ValidateDoc(dp);
-
- }
-
- HUnlock((Handle) doc);
-
- }
-
- void GXEditOpen(GXEditDoc * doc, Rect * viewRect, gxViewPort docViewPort, short fRefNum,
- fixed leftMargin, fixed rightMargin)
- {
- short left;
- short right;
-
- left = FixedToInt(leftMargin);
- right = FixedToInt(rightMargin);
-
- DocOpen((DocHan *) doc, viewRect, docViewPort, fRefNum, left, right);
-
- HLock((Handle) *doc);
-
- ValidateDoc(**((DocHan *) doc));
-
- HUnlock((Handle) *doc);
- }
-
-
- void GXEditGetError(GXEditDoc doc, GXEditError * error, GXEditError * stickyError)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp) || dp->magic == kGXEditMagic)
- gxEditGetError(dp, error, stickyError);
- else {
- if(error != nil)
- *error = gx_edit_bad_magic;
- if(stickyError != nil)
- *error = gx_edit_bad_magic;
- }
-
- HUnlock((Handle) doc);
-
- }
-
- void GXEditGetUserError(GXEditDoc doc, GXEditUserErrorProc * userProc, void ** reference)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp))
- gxEditGetUserError(dp, userProc, reference);
-
- HUnlock((Handle) doc);
-
- }
-
- void GXEditSetUserError(GXEditDoc doc, GXEditUserErrorProc userProc, void * reference)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if(ValidateDoc(dp))
- gxEditSetUserError(dp, userProc, reference);
-
- HUnlock((Handle) doc);
-
- }
-
- void GXEditFlushCaches(GXEditDoc doc)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if (ValidateDoc(dp))
- gxEditFlushCaches(dp);
-
- ValidateDoc(dp);
-
- HUnlock((Handle) doc);
- }
-
- void GXEditProof(GXEditDoc doc, GXEditProofPtr proof)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if (ValidateDoc(dp))
- DocProof(dp, proof);
-
- ValidateDoc(dp);
-
- HUnlock((Handle) doc);
- }
-
- extern void GXEditActivate(GXEditDoc doc, Boolean activate)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if (ValidateDoc(dp))
- DocActivate(dp, activate);
-
- ValidateDoc(dp);
-
- HUnlock((Handle) doc);
- }
-
- extern void GXEditSetEncoding(GXEditDoc doc, gxFontPlatform platform, gxFontScript script, gxFontLanguage language)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if (ValidateDoc(dp))
- DocSetEncoding(dp, platform, script, language);
-
- ValidateDoc(dp);
-
- HUnlock((Handle) doc);
- }
-
- extern void GXEditSetVerticalText(GXEditDoc doc, Boolean enable)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if (ValidateDoc(dp))
- DocSetVerticalText(dp,enable);
-
- ValidateDoc(dp);
-
- HUnlock((Handle) doc);
- }
-
- extern void GXEditGetVerticalText(GXEditDoc doc, Boolean * enable)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if (ValidateDoc(dp))
- DocGetVerticalText(dp,enable);
-
- ValidateDoc(dp);
-
- HUnlock((Handle) doc);
- }
-
- extern void GXEditGetSelectionEncoding(GXEditDoc doc, gxFontPlatform * platform, gxFontScript * script, gxFontLanguage * language)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if (ValidateDoc(dp))
- DocGetSelectionEncoding(dp, platform, script, language);
-
- ValidateDoc(dp);
-
- HUnlock((Handle) doc);
- }
-
- extern void GXEditSetSelectionEncoding(GXEditDoc doc, gxFontPlatform platform, gxFontScript script, gxFontLanguage language)
- {
- DocPtr dp;
-
- HLock((Handle) doc);
-
- dp = *((DocHan) doc);
- dp->error = gx_edit_no_error;
-
- if (ValidateDoc(dp))
- DocSetSelectionEncoding(dp, platform, script, language);
-
- ValidateDoc(dp);
-
- HUnlock((Handle) doc);
- }
-